package com.gengzp.mq.client.model.message;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.gengzp.mq.client.enums.MqMessageStatusEnum;

import java.io.Serial;
import java.io.Serializable;
import java.util.Date;

/**
 * @ClassName MqPageMessageResp
 * @Description 分页查询消息返回实体
 * @Author gengzp
 * @Date 2025/9/1 15:32
 */
public class MqPageMessageResp implements Serializable {

    @Serial
    private static final long serialVersionUID = 486890618395234488L;

    /**
     * 消息唯一标识
     */
    private String messageId;

    /**
     * 主题
     */
    private String topic;

    /**
     * 标签
     */
    private String tag;

    /**
     * 消息内容
     */
    private String content;

    /**
     * 消息状态
     * {@link MqMessageStatusEnum}
     */
    private Integer status;

    /**
     * 消息状态描述
     */
    private String statusDesc;

    /**
     * 发送时间戳
     */
    private Long sendTimeStamp;

    /**
     * 发送时间 (yyyy-MM-dd HH:mm:ss格式)
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date sendTime;

    /**
     * 重试次数
     */
    private Integer retryCount;

    public String getMessageId() {
        return messageId;
    }

    public void setMessageId(String messageId) {
        this.messageId = messageId;
    }

    public String getTopic() {
        return topic;
    }

    public void setTopic(String topic) {
        this.topic = topic;
    }

    public String getTag() {
        return tag;
    }

    public void setTag(String tag) {
        this.tag = tag;
    }

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }

    public Integer getStatus() {
        return status;
    }

    public void setStatus(Integer status) {
        this.status = status;
    }

    public Long getSendTimeStamp() {
        return sendTimeStamp;
    }

    public void setSendTimeStamp(Long sendTimeStamp) {
        this.sendTimeStamp = sendTimeStamp;
    }

    public Date getSendTime() {
        return sendTime;
    }

    public void setSendTime(Date sendTime) {
        this.sendTime = sendTime;
    }

    public Integer getRetryCount() {
        return retryCount;
    }

    public void setRetryCount(Integer retryCount) {
        this.retryCount = retryCount;
    }

    public String getStatusDesc() {
        return statusDesc;
    }

    public void setStatusDesc(String statusDesc) {
        this.statusDesc = statusDesc;
    }

}
